interface USB {
	public void start(); // 抽象方法，在这里只能声明，不能实现。

	public void stop();
}

class PC // 对于PC机上认得是一个USB接口
{
	public static void plugin(USB u) // 对象为参数
	{
		u.start();
		u.stop();
	}
};

class Mp3 implements USB // Mp3类实现USB接口
{
	public void start() {
		System.out.println("Mp3开始工作...");
	}

	public void stop() {
		System.out.println("Mp3停止工作...");
	}
};

class UDisk implements USB // UDisk类实现USB接口
{
	public void start() {
		System.out.println("U盘开始工作...");
	}

	public void stop() {
		System.out.println("U盘停止工作...");
	}
};

class Factory // 工厂模式
{
	public static USB GetUsbinstance() // 返回类型只能是USB，因为UDisk和Mp3都是实现USB接口的类
	{
		return new UDisk();
	}
};

public class Application {
	public static void main(String[] args) {
		PC.plugin(Factory.GetUsbinstance()); // 实参
		// PC.plugin(new UDisk());
	}
}
